Object-Oriented Programming Versus Abstract Data Types

نویسنده

  • William R. Cook
چکیده

This tutorial collects and elaborates arguments for distinguishing between object-oriented programming and abstract data types. The basic distinction is that object-oriented programming achieves data abstraction by the use of procedural abstraction, while abstract data types depend upon type abstraction. Object-oriented programming and abstract data types can also be viewed as complimentary implementation techniques: objects are centered around the constructors of a data abstraction, while abstract data types are organized around the operations. These differences have consequences relating to extensibility, efficiency, typing, and verification; in many cases the strengths of one paradigm are the weaknesses of the other. Most object-oriented programming languages support aspects of both techniques, not a unification of them, so an understanding of their relative merits is useful in designing programs. Published in the Proceedings of the REX Workshop/School on the Foundations of Object-Oriented Languages, LNCS 173, Springer-Verlag, 1990, pp. 151-178.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Objects Versus Abstract Data Types: Bialgebraically

Algebraic data types and catamorphisms (generic folds) play a central role in functional programming as they allow programmers to define recursive tree-like data structures and operations on them uniformly by structural recursion. Likewise, in object-oriented programming recursive hierarchies of objects play a central role for the same reason, although the execution is quite different. There is...

متن کامل

An Object-Oriented Environment for OIS Applications

Object-oriented programming environments are increasingly needed for programming OIS applications. A prototype object-oriented language has been implemented, and we are refining the language and its implementation. The environment integrates a number of database and operating system concepts, in particular, abstract data types, database constraints, atomic transactions, data persistency, trigge...

متن کامل

Subtyping for mutable types in object-oriented programming languages

Subtype relationships in object-oriented programming languages are studied to aid code reuse and reasoning about programs that use subtype polymorphism. We de ne what it means for one abstract data type to be a subtype of another. This de nition allows for both mutation and aliasing. This work gives intuition for programmers and guidance to language designers.

متن کامل

Constraining Polymorphism in Statically Typed Object-Oriented Languages

A major attraction of object-oriented programming languages is the promise of increased code reuse, especially through large class libraries implementing common abstract data types and algorithms. Unfortunately, the type systems of most widely used, statically typed object-oriented languages are unable to express the kinds of constrained polymorphism required to support the construction of such...

متن کامل

Algebras for Object-oriented Query Languages

ion is a common feature in many object-oriented models, and AQUA is no exception. Every type is essentially an abstract data type -however, the base types and all types built using the usual type constructors have a fixed set of standard operations available on them (e.g. join and union for sets). As mentioned in [Care88b] and [Rowe87], it is often desirable to be able to add other methods to s...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1990